/***************************************************************************
 创建者: 林逢达
 开始时间: 2016.11.28
 copyright: (C) 同川科技
 修改说明: (每次有修改就添加一条，带有 修改人，修改时间，修改描述)

 ***************************************************************************
 *  @file trajectoryscale.h
 *  功能:
 *
 *                                                                         *
 ***************************************************************************/
#ifndef TRAJECTORYSCALE_H
#define TRAJECTORYSCALE_H

#include "domparser.h"

enum TS_STATUS
{
    ENUM_TS_CEASE = 0,//暂停
    ENUM_TS_HOLD = 1,//保持
    ENUM_TS_ACC = 2,//加速
    ENUM_TS_DEC =3//减速
};

class TrajectoryScale :  public  DomParser
{
private:
    double deltaTime;//伺服指令周期
    double referScale;//期望的时间比例
    double scale;//时间比例
    double scale_dot;//时间比例的导数
    static const double eps = 1e-7;//误差

public:
    int scaleStatus;//缩放状态
    double currentTime;//当前时刻
    double a;//external parameter
    double b;//external parameter
    double c;//external parameter

public:
    TrajectoryScale(double _deltaTime,int _stopTime);
    void update();
    void linearDown();//时间比例线性减小
    void linearUp();//时间比例线性增加
    void setScale(double expectScale);//设置期望比例
    void resetTime(double _currentTime);//设置当前时刻
    void resetScale(double _scale);//设置当前比例
    void resetScaleDot(int stopTime);//设置时间比例变化速率
    ~TrajectoryScale();
};

#endif // TRAJECTORYSCALE_H
